iterative data generation